Scene-based variable compression

ABSTRACT

Technology is disclosed for enabling scene-based variable compression (“the technology”). In some embodiments, the technology can receive an indication of a compression level for a first content type, wherein the compression level specifies a tolerance level for lossy compression; receive a request for content, the content having at least two portions, wherein a first portion has first content of the first content type and the second portion has second content of a second content type, a first compression method associated with the indicated compression level and a second compression method associated with a different compression level. The technology can transmit the content, wherein the first portion of the content was compressed using the first compression method and the second portion was compressed using the second compression method.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation application under 35 U.S.C. §120 ofU.S. patent application Ser. No. 15/047,739, filed on Feb. 19, 2016,which is a continuation of U.S. patent application Ser. No. 13/389,432,filed on Feb. 7, 2012, now U.S. Pat. No. 9,338,257, which in turn is aU.S. National Stage filing under 35 U.S.C. §371 of InternationalApplication No. PCT/US11/28985, filed on Mar. 18, 2011. The disclosuresof U.S. patent application Ser. No. 15/047,739, U.S. patent applicationSer. No. 13/389,432, and International Application No. PCT/US11/28985are hereby incorporated herein by reference in their entireties.

BACKGROUND

Computer networks enable vast amounts of data (e.g., content) to betransferred from one computing device to another computing device. As anexample, a client computing device may access multimedia content storedat a server computing device via an intranet or the Internet. Becausenetwork bandwidth is limited, various compression methods are used tocompress content that is to be transferred between computing devices. Asan example, an international standards organization moving pictureexperts group (“MPEG”) has proposed compression methods for multimediacontent.

Compression methods use a fewer number of bits to store data than thenumber of bits that represent the uncompressed data. Compressed data canthus require less storage space to store and reduced network bandwidthto transmit the compressed data as compared to the equivalent data priorto compression (“uncompressed data”).

Compression methods can be lossy or lossless. When a lossy compressionmethod is used to compress data, the compressed data generally cannot beused during expansion to reproduce the originally compressed data withcomplete fidelity. In contrast, when a lossless compression method isused to compress data, the compressed data can be used to reproduce theoriginally compressed data with complete fidelity. Thus, whichcompression method is used to

SUMMARY

Technology is disclosed for enabling scene-based variable compression(“the technology”). The technology can receive an indication of acompression level for a first content type, wherein the compressionlevel specifies a tolerance level for lossy compression; receive arequest for content, the content having at least two portions, wherein afirst portion has first content of the first content type and the secondportion has second content of a second content type, a first compressionmethod associated with the indicated compression level and a secondcompression method associated with a different compression level. Thetechnology can then transmit the content to respond to the request,wherein the first portion of the content was compressed using the firstcompression method and the second portion was compressed using thesecond compression method.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating a routine that the technology mayinvoke in various embodiments, e.g., to respond to requests for content.

FIG. 2 is a flow diagram illustrating a routine that the technology mayinvoke in various embodiments, e.g., to respond to requests for content.

FIG. 3 is a table diagram illustrating a table the technology may employin various embodiments, e.g., to store indications of clientpreferences.

FIG. 4 is a table diagram illustrating a table the technology may employin various embodiments, e.g., to store associations between compressionlevels and compression methods.

FIG. 5 is a schematic diagram illustrating a comparison between originalcontent and compressed content in various embodiments.

FIG. 6 is a block diagram illustrating an environment in which thetechnology may operate in various embodiments.

FIG. 7 is a block diagram illustrating components the technology mayemploy in various embodiments.

FIG. 8 is a flow diagram illustrating a routine that the technology mayinvoke in various embodiments, e.g., to transmit preferences forcompression levels.

FIG. 9 is a block diagram of an illustrative embodiment of a computingdevice that is arranged for scene-based variable compression inaccordance with at least some embodiments of the present disclosure.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof. In the drawings,similar symbols typically identify similar components, unless contextdictates otherwise. The illustrative embodiments described in thedetailed description, drawings, and claims are not meant to be limiting.Other embodiments may be utilized, and other changes may be made,without departing from the scope of the subject matter presented herein.It will be readily understood that the aspects of the presentdisclosure, as generally described herein, and illustrated in theFigures, can be arranged, substituted, combined, separated, and designedin a wide variety of different configurations, all of which areexplicitly contemplated herein.

Technology is disclosed for enabling scene-based variable compression(“the technology”). In various embodiments, the technology enablesdelivery of content that is variably compressed based on scene-basedpreferences that are previously received from a requester of thecontent. A client (e.g., a client computing device or a user of theclient computing device) can indicate preferences for various contenttypes. As an example, the client can indicate that a wide-angle view ofa sporting event should not be compressed, but a news program can beheavily compressed. A server can then store the preferences indicated bythe client. When the client subsequently requests content (e.g., contentthat is to be downloaded or streamed), the server can then respond tothe request by selecting content that is compressed according to theclient's previously provided preferences. The content can be dynamicallycompressed (e.g., just before it is delivered to satisfy requests) orpreviously compressed and stored. When a server responds to clientrequests for content, the server can determine what content typescorrespond to the content either by detecting scenes dynamically (e.g.,near the time the content is to be provided to the client) or byretrieving metadata associated with the portions of the requestedcontent.

The content can include multiple scenes, each corresponding to adifferent content type. As an example, a sports show may include aportion of a game (e.g., a professional basketball game), followed by ananalysis. The game portion may include multiple wide-angle parts andmultiple close-up parts. The analysis portion may be similar to a newsprogram. If the client that requests the content has specifiedpreferences not to compress wide-angle shots, compress close-up shotssomewhat, and compress news programs substantially, then the server mayprovide the sports show to the client with each part compressedaccordingly.

A client can specify preferences for compression based at least onvarious scene-based factors, e.g., the gender or identity of the presentspeaker, the content type (e.g., violence, sex, nature, dance, news,etc.), and so forth. The preferences the client specifies mayadditionally indicate a preferred or desired compression level or acompression method for at least some of the content types. Thetechnology may select various compression methods for the indicatedcompression levels. Thus, the technology is capable of providing contentthat responds to client indications of scene-based compression in a waythat varies with content types. When the client specifies a particularcompression level, the technology, in some embodiments, may varycompression parameters for a particular compression method (e.g., aspecific lossy compression method) to achieve more or less compression,and each such variance can be referred to herein as a differentcompression method.

In various embodiments, initial scene recognition may initially beperformed by a client computing device. As an example, the clientcomputing device may initially receive content compressed using a firstcompression method (e.g., a lossy compression method). The clientcomputing device may employ a scene recognition algorithm to recognizethat the content contains a particular scene that a user of the clienthas previously indicated to be something the user wants to see withhigher fidelity than would be possible when content is compressed usingthe first compression method. Upon recognizing that the content containssuch a scene, the client computing device may indicate to the servercomputing device to use a second compression method (e.g., a lossless or“less lossy” compression method) that provides higher fidelity than thefirst compression method. The server computing device may then providethe content that is compressed using the second compression method.Later, when the client computing device determines that the receivedcontent includes a different scene that the user has not indicatedshould be received at higher fidelity than would be possible whencontent is compressed using the first compression method, the clientcomputing device may request the server computing device to revert tousing the first compression method (or a different compression method).

In various embodiments, the user may be able to indicate that the userwants to see some content types with lower fidelity than would occurwhen the content is compressed using the first compression method. Insuch embodiments, the client computing device may employ the scenerecognition algorithm to recognize that the content contains aparticular scene that the user has previously indicated to be somethingthe user wants to see with lower fidelity than would be possible whencontent is compressed using the first compression method. Uponrecognizing that the content contains such a scene, the client computingdevice may indicate to the server computing device to use a thirdcompression method (e.g., a lossless or “more lossy” compression method)that provides lower fidelity than the first compression method. Theserver computing device may then provide the content that is compressedusing the third compression method. Later, when the client computingdevice determines that the received content includes a different scenethat the user has not indicated should be received at lower fidelitythan would be possible when content is compressed using the thirdcompression method, the client computing device may request the servercomputing device to revert to using the first compression method (or adifferent compression method).

In various embodiments, different servers can be used, e.g., one tostore client preferences, a second to store content, and a third torespond to client requests. The technology will now be described withreference to the figures.

FIG. 1 is a flow diagram illustrating a routine 100 that the technologymay invoke in various embodiments, e.g., to respond to requests forcontent. The routine 100 begins at block 102 and continues to block 104.At block 104, the routine 100 receives an indication of a compressionlevel for a first content type, wherein the compression level specifiesa tolerance level for lossy compression. The routine 100 then continuesat block 106, where it receives (e.g., from a client) a request forcontent. The content may have at least two portions, wherein a firstportion has first content of a first content type and the second portionhas second content of a second content type. There may be a firstcompression method associated with the indicated compression level and asecond compression method associated with a different compression level.The routine 100 then continues at block 108, where it transmits thecontent to the requestor of the content (e.g., to the client), whereinthe first portion of the content was compressed using the firstcompression method and the second portion was compressed using thesecond compression method. The routine 100 then continues to block 110,where it returns. The routine 100 may compress the content prior totransmission or may retrieve previously compressed content.

The routine 100 may further receive the indication of the compressionlevel from a client computing device that requests the content. Theroutine 100 may further compress the first portion of the content usingthe first compression method. The first portion of the content may havea first size and a compressed size of the first portion of the contentmay be smaller than a result of using the second compression method tocompress the first portion of the content. The routine 100 may furtherdynamically select, e.g., in nearly real time, a compression method foreach portion of the content based on a content type associated with thatportion of the content. A content type may be indicated in metadataassociated with at least one of the portions of content. Alternatively,a content type may be automatically detected, e.g., based on a scene.The content type may be at least one of scenery, sex of a speaker,identity of a speaker, sports, wildlife, news, or sexual. As an example,when the first content type is news and the second content type issports, the first compression method may be more lossy than the secondcompression method. As another example, when the first content type is awide-angle view and the second content type is a close-up view, thefirst compression method may be less lossy than the second compressionmethod.

Those skilled in the art will appreciate that the logic illustrated inFIG. 1 and described above, and in each of the flow diagrams discussedbelow, may be altered in a variety of ways. For example, the order ofthe logic may be rearranged, sublogic may be performed in parallel,illustrated logic may be omitted, other logic may be included, etc.

FIG. 2 is a flow diagram illustrating a routine 200 that the technologymay invoke in various embodiments, e.g., to respond to requests forcontent. The routine 200 begins at block 202 and continues to block 204.At block 204, the routine 200 receives (e.g., from a requester ofcontent, such as a client) indications of preferred or desiredcompression levels for various content types. The routine 200 thencontinues at block 206, where the routine 200 stores the receivedindications, e.g., at a storage device communicably coupled to a server.The routine 200 then continues at block 208, where it receives (e.g.,from the client) a request for content. The content can be multimediacontent for download or streaming, or any other type of content. Theroutine 200 then continues at block 210, where it determines contenttypes for various portions of the requested content. The technology maydetermine content type by checking metadata associated with each portionof content, dynamically evaluating the content, etc. Varioustechnologies exist for dynamically evaluating content. As examples,technology exists for facial detection, location recognition, nudityrecognition, voice recognition, etc. The technology may employ one ormore of these existing technologies to dynamically evaluate content toidentify content types for portions of content.

The routine 200 then continues in various embodiments either at block212 or at block 214. At block 212, the routine 200 optionally compressesportions of the content, e.g., based on indicated compression levels forcontent types of portions of the content. Alternatively or in addition,the routine 200 can retrieve previously compressed content (notillustrated). In various embodiments, when a portion has been previouslycompressed at the preferred or desired compression level, the technologymay simply retrieve the previously compressed portion instead ofcompressing it again. The routine 200 then continues at block 214.

At block 214, the routine 200 transmits the content, e.g., to the clientthat requested the content. The routine 200 then continues at block 216,where it returns.

FIG. 3 is a table diagram illustrating a compression levels table 300the technology may employ in various embodiments, e.g., to storeindications of client preferences. The table 300 includes multiplecolumns, e.g., a client identification column 302, a content type column304, and a compression level column 306. The client identificationcolumn 302 can store identifications of clients, e.g., globally uniqueidentifiers, network address identifiers, etc. The content type column304 can store indications of content types, e.g., sports, news, nudity,actors, etc. The compression level column 306 can store indications ofcompression levels. Thus, each row in table 300 stores associationsbetween client identifiers, content types, and compression levels sothat the technology can determine which compression level to use for anyparticular client when the client requests content having any particularcontent type. In various embodiments, the technology may apply a defaultcompression level when the client has specified no particularcompression level for any given content type that is encountered whiletransmitting the requested content to the client. As an example, rows308, 310, and 312 are associated with a client having a clientidentifier of 1. Row 308 specifies that the content type of sports witha wide-angle view should have a compression level of 0; row 310specifies that the content type of sports with a close-up view shouldhave a compression level of 2; and row 312 specifies that the contenttype of news should have a compression level of 4. Rows 314 and 316 areassociated with a client having a client identifier of 2. Row 314specifies that the content type of nudity should have a compressionlevel of 1 and row 316 specifies that when a scene includes actor ClintEastwood the compression level should be 1.

Although FIG. 3 and each of the table diagrams discussed below show atable whose contents and organization are designed to make them morecomprehensible by a human reader, those skilled in the art willappreciate that actual data structures used by the facility to storethis information may differ from the table shown, in that they, forexample, may be organized in a different manner; may contain more orless information than shown; may be compressed and/or encrypted; etc.

FIG. 4 is a table diagram illustrating a table 400 the technology mayemploy in various embodiments, e.g., to store associations betweencompression levels and compression methods. The table 400 includes acompression level column 402 and a compression method column 404. Thecompression level column 402 corresponds to column 306 of FIG. 3. Thecompression method column 404 indicates which compression method is tobe used for any particular compression level. As examples, nocompression is to be used when the compression level is 0, losslesscompression is to be used when the compression level is 1, a first lossycompression method is to be used when the compression level is 2, asecond lossy compression method is to be used when the compression levelis 3, and a third lossy compression method is to be used when thecompression level is 4.

FIG. 5 is a schematic diagram illustrating a comparison between originalcontent 500 and compressed content 550 in various embodiments. Theoriginal content 500 includes a sports close-up part 502, a sportswide-angle part 504, a news part 506, and a sports close-up part 508.Each of the four parts has an original size of 5 megabytes (“Mb”). Eachpart also indicates a content type corresponding to that part inmetadata associated with the part. The compressed content 550 includesthe same parts as original content 500, but some of the parts have beencompressed according to the selected compression levels identified forclient 1 in FIG. 3 for each part. As examples, part 552 corresponds topart 502, but is compressed with a first lossy compression method; part554 corresponds to part 504, and has not been compressed; part 556corresponds to part 506, but is compressed with a third lossycompression method, and part 558 corresponds to part 508, but iscompressed with the first lossy compression method. After compression,part 552 becomes 4 Mb, part 554 remains at 5 Mb, part 556 becomes 3 Mb,and part 558 becomes 4 Mb. Thus, the original content has a total of 20Mb, but the compressed content has a total of 16 Mb.

FIG. 6 is a block diagram illustrating an environment 600 in which thetechnology may operate in various embodiments. The environment 600 caninclude one or more servers 602. As an example, the environment 600 caninclude a server for storing client preferences, content, and/orcompressed content, e.g., in a storage 604 that may be communicablycoupled to the server 602. The server may be communicably coupled via anetwork 606 to one or more client computing devices 608, e.g., clientcomputing devices 608 a, 608 b, and 608 n. The clients or the serverscan in various embodiments be general-purpose computing devices orspecial-purpose computing devices, e.g., as described in further detailbelow in relation to FIG. 9.

FIG. 7 is a block diagram illustrating components 700 the technology mayemploy in various embodiments. A component 702 can be configured toreceive an indication of a compression level for a first content type,wherein the compression level specifies a tolerance level for lossycompression. A component 704 can be configured to receive from a clienta request for content, the content having at least two portions whereina first portion has first content of the first content type and thesecond portion has second content of a second content type, wherein afirst compression method is associated with the indicated compressionlevel and a second compression method is associated with a differentcompression level. A component 706 can be configured to transmit to theclient the requested content, the first portion of the contentcompressed using the first compression method and the second portioncompressed using the second compression method. A compressor component708 can compress content, e.g., using one or more compression methods. Astorage component 710 can store various data, e.g., content, clientpreferences, compressed data, etc. A retrieval component 712 canretrieve various data, e.g., content, client preferences, compresseddata, etc. The technology may also employ other components (notillustrated).

FIG. 8 is a flow diagram illustrating a routine 800 that the technologymay invoke in various embodiments, e.g., to transmit preferences forcompression levels. The routine 800 starts at block 802. The routinethen continues at block 804, where it transmits an indication of atolerance level for lossy compression for at least two content types.The routine then continues at block 806, where it requests content froma server. The routine then continues at block 808 where it receives fromthe server the requested content, wherein the requested content includesa first portion that has first content of a first content type and asecond portion that has second content of a second content type, whereinthe first portion was compressed using a first compression method andthe second portion was compressed using a second compression method,wherein each compression method corresponds to the indicated tolerancelevels. The routine then continues at block 810, where it returns.

FIG. 9 is a block diagram illustrating an example computing device 900that is arranged for scene-based variable compression in accordance withat least some embodiments of the present disclosure. In a very basicconfiguration 902, computing device 900 typically includes one or moreprocessors 904 and a system memory 906. A memory bus 908 may be used forcommunicating between processor 904 and system memory 906.

Depending on the desired configuration, processor 904 may be of any typeincluding but not limited to a microprocessor (μP), a microcontroller(μC), a digital signal processor (DSP), or any combination thereof.Processor 904 may include one or more levels of caching, such as a levelone cache 910 and a level two cache 912, a processor core 914, andregisters 916. An example processor core 914 may include an arithmeticlogic unit (ALU), a floating point unit (FPU), a digital signalprocessing core (DSP core), or any combination thereof. An examplememory controller 918 may also be used with processor 904, or in someimplementations, memory controller 918 may be an internal part ofprocessor 904.

Depending on the desired configuration, system memory 906 may be of anytype including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.) or any combinationthereof. System memory 906 may include an operating system 920, one ormore applications 922, and program data 924. Application 922 may includea compressor component 926 that is arranged to compress data using oneor more compression methods. Program data 924 may include content 928(e.g., multimedia content) that clients may request, as is describedherein. In some embodiments, application 922 may be arranged to operatewith program data 924 on operating system 920 such that rotation ofdisplayed information is enabled or disabled, e.g., depending on anorientation of the display. This described basic configuration 902 isillustrated in FIG. 9 by those components within the inner dashed line.

Computing device 900 may have additional features or functionality, andadditional interfaces to facilitate communications between basicconfiguration 902 and any required devices and interfaces. For example,a bus/interface controller 930 may be used to facilitate communicationsbetween basic configuration 902 and one or more data storage devices 932via a storage interface bus 934. Data storage devices 932 may beremovable storage devices 936, non-removable storage devices 938, or acombination thereof. Examples of removable storage and non-removablestorage devices include magnetic disk devices such as flexible diskdrives and hard-disk drives (HDD), optical disk drives such as compactdisk (CD) drives or digital versatile disk (DVD) drives, solid statedrives (SSD), and tape drives to name a few. Example computer storagemedia may include volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage ofinformation, such as computer readable instructions, data structures,program modules, or other data.

System memory 906, removable storage devices 936 and non-removablestorage devices 938 are examples of computer storage media. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich may be used to store the desired information and which may beaccessed by computing device 900. Any such computer storage media may bepart of computing device 900.

Computing device 900 may also include an interface bus 940 forfacilitating communication from various interface devices (e.g., outputdevices 942, peripheral interfaces 944, and communication devices 946)to basic configuration 902 via bus/interface controller 930. Exampleoutput devices 942 include a graphics processing unit 948 and an audioprocessing unit 950, which may be configured to communicate to variousexternal devices such as a display or speakers via one or more A/V ports952. Example peripheral interfaces 944 include a serial interfacecontroller 954 or a parallel interface controller 956, which may beconfigured to communicate with external devices such as input devices(e.g., keyboard, mouse, pen, voice input device, touch input device,etc.) or other peripheral devices (e.g., printer, scanner, etc.) via oneor more I/O ports 958. An example communication device 946 includes anetwork controller 960, which may be arranged to facilitatecommunications with one or more other computing devices 962 over anetwork communication link via one or more communication ports 964.

The network communication link may be one example of a communicationmedia. Communication media may typically be embodied by computerreadable instructions, data structures, program modules, or other datain a modulated data signal, such as a carrier wave or other transportmechanism, and may include any information delivery media. A “modulateddata signal” may be a signal that has one or more of its characteristicsset or changed in such a manner as to encode information in the signal.By way of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), microwave,infrared (IR) and other wireless media. The term computer readable mediaas used herein may include both storage media and communication media.

Computing device 900 may be implemented as a portion of a small-formfactor portable (or mobile) electronic device such as a cell phone, apersonal data assistant (PDA), a personal media player device, awireless web-watch device, a personal headset device, an applicationspecific device, or a hybrid device that include any of the abovefunctions. Computing device 900 may also be implemented as a personalcomputer including both laptop computer and non-laptop computerconfigurations.

From the foregoing, it will be appreciated that various embodiments ofthe present disclosure have been described herein for purposes ofillustration, and that various modifications may be made withoutdeparting from the scope of the present disclosure. Accordingly, thevarious embodiments disclosed herein are not intended to be limiting,with the true scope being indicated by the following claims.

We claim:
 1. A method, comprising: determining a respective content typefor each portion of at least two portions of content; determining, basedon the respective content type, a respective compression level for eachportion of the at least two portions of the content; compressing, basedon the respective compression level, each portion of the at least twoportions of the content, wherein the compressing each portion comprises:compressing a first portion, of the at least two portion of the content,using a first compression level, wherein the first portion correspondsto a first content type; and compressing a second portion, of the atleast two portions of the content, using a second compression level,wherein the second portion corresponds to a second content type; andsending the compressed at least two portions of the content to a userdevice.
 2. The method of claim 1, wherein the determining the respectivecompression level for each portion of the at least two portions of thecontent comprises: obtaining, from the user device, a first indicationof the first compression level for the first content type and a secondindication of the second compression level for the second content type.3. The method of claim 1, further comprising: determining a respectivecompression method for the first compression level and the secondcompression level, wherein: the compressing the first portion using thefirst compression level comprises compressing the first portion using afirst compression method that corresponds to the first compressionlevel, and the compressing the second portion using the secondcompression level comprises compressing the second portion using asecond compression method that corresponds to the second compressionlevel.
 4. The method of claim 3, wherein the first compression methodand the second compression method includes one of a lossless compressionmethod and a lossy compression method.
 5. The method of claim 1, whereinthe determining the respective content type for each portion of the atleast two portions of the content comprises checking metadata associatedwith each portion of the at least two portions of the content.
 6. Themethod of claim 1, wherein the determining the respective content typefor each portion of the at least two portions of the content comprisesdynamically evaluating the content.
 7. The method of claim 6, whereinthe dynamically evaluating the content comprises employing one or moreof: facial detection, location recognition, nudity recognition, andvoice recognition.
 8. The method of claim 1, wherein the determining therespective compression level for each portion of the at least twoportions of the content comprises selecting the respective compressionlevel, from a plurality of compression levels, for each portion of theat least two portions of the content, dynamically in real-time.
 9. Themethod of claim 1, wherein the first portion of the content includes awide-angle view, and the second portion of the content includes aclose-up view, and wherein the first compression level is lossier thanthe second compression level.
 10. The method of claim 1, wherein thecompressing the second portion of the content using the secondcompression level comprises retrieving a previously compressed secondportion of the content from a storage, and wherein the previouslycompressed second portion of the content is compressed using the secondcompression level.
 11. The method of claim 1, further comprising:obtaining an indication of a third compression level for the firstportion of the content that has been sent to the user device;compressing the first portion of the content using the third compressionlevel; and re-sending the first portion of the content, which has beencompressed using the third compression level, to the user device,wherein the third compression level has different fidelity than thefirst compression level.
 12. A system, comprising: one or moreprocessors configured to perform or cause to be performed: determine arespective content type for each portion of at least two portions ofcontent; determine, based on the respective content type, a respectivecompression level for each portion of the at least two portions of thecontent; compress, based on the respective compression level, eachportion of the at least two portions of the content, wherein to compresseach portion, the one or more processors are configured to perform orcause to be performed: compress a first portion, of the at least twoportion of the content, by use of a first compression level, wherein thefirst portion corresponds to a first content type; and compress a secondportion, of the at least two portions of the content, by use of a secondcompression level, wherein the second portion corresponds to a secondcontent type; and send the compressed at least two portions of thecontent to a user device; and a memory communicatively coupled to theone or more processors, wherein the memory is configured to store one ormore of: the content, the compressed at least two portions of thecontent, the respective compression levels, and the respective contenttypes.
 13. The system of claim 12, further comprising: a communicationinterface communicatively coupled to the one or more processors and tothe memory, wherein the communication interface is configured to obtainthe compressed at least two portions of the content from the one or moreprocessors or from the memory, and to transmit the compressed at leasttwo portions of the content to the user device.
 14. The system of claim12, wherein the content type includes at least one of: scenery, genderof a speaker, identity of the speaker, sports, wildlife, news, orsexual.
 15. The system of claim 12, wherein to determine the respectivecompression level for each portion, the one or more processors areconfigured to perform or cause to be performed: obtain, from the userdevice, a first indication of the first compression level for the firstcontent type and a second indication of the second compression level forthe second content type.
 16. The system of claim 12, wherein the firstcompression level corresponds to a first compression method, and thesecond compression level corresponds to a second compression method, andwherein the first compression method and the second compression methodincludes one of a lossless compression method and a lossy compressionmethod.
 17. The system of claim 12, wherein to determine the respectivecontent type of each portion of the at least two portions of thecontent, the one or more processors are configured to perform or causeto be performed at least one or more of: check metadata associated eachportion of the at least two portions of the content; and dynamicallyevaluate the content by use of one or more of: facial detection,location recognition, nudity recognition, and voice recognition.
 18. Thesystem of claim 12, wherein the content includes multimedia content todownload or to stream on the user device, wherein the first portion ofthe content corresponds to a first scene of the multimedia content, andwherein the second portion of the content corresponds to a second sceneof the multimedia content.
 19. The system of claim 12, wherein thememory is further configured to store one or more of: associationsbetween a plurality of compression levels and a plurality of compressionmethods, and a table that comprises information of client preferences tocompress one or more particular content types.
 20. A non-transitorycomputer readable medium that stores instructions which, in response toexecution by one or more processors, cause the one or more processors toperform or control performance of operations comprising: determine arespective content type for each portion of at least two portions ofcontent; determine, based on the respective content type, a respectivecompression method for each portion of the at least two portions of thecontent; compress, based on the respective compression method, eachportion of the at least two portions of the content, wherein theoperation to compress each portion comprises at least one operation to:compress a first portion, of the at least two portion of the content, byuse of a first compression method, wherein the first portion correspondsto a first content type; and compress a second portion, of the at leasttwo portions of the content, by use a second compression method, whereinthe second portion corresponds to a second content type; and send thecompressed at least two portions of the content to a user device,wherein: the first compression method and the second compression methodincludes one of: a lossless compression method and a lossy compressionmethod, and the first compression method and the second compressionmethod correspond respectively to a first compression level and a secondcompression level.
 21. The non-transitory computer readable medium ofclaim 20, wherein the content includes multimedia content to download orto stream on the user device, wherein the first portion of the contentcorresponds to a first scene of the multimedia content, and wherein thesecond portion of the content corresponds to a second scene of themultimedia content.
 22. The non-transitory computer readable medium ofclaim 21, wherein the multimedia content includes content thatcorrespond to one or more of violence, news, sports, dance, sexual, orwildlife.
 23. The non-transitory computer readable medium of claim 20,wherein the first compression method and the second compression methodare specified by a requestor of the content.
 24. The non-transitorycomputer readable medium of claim 20, wherein the first portion of thecontent and the second portion of the content respectively comprise afirst scene of a show and a second scene the show, and wherein thecompression of the first portion includes a compression of the firstscene and the compression of the second portion includes a compressionof the second scene so that the show is compressed differentlyscene-by-scene.